﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace WoWArmoryParser
{
    public class Character
    {
    }

    public class BaseStats
    {
        #region Constructors
        public BaseStats( int Str, int Agi, int Sta, int Int, int Spi, int Arm )
        {
            Strength = Str;
            Agility = Agi;
            Stamina = Sta;
            Intellect = Int;
            Spirit = Spi;
            Armor = Arm;
        }
        public BaseStats() { }
        #endregion
        #region Properties
        public int Strength { get; set; }
        public int Agility { get; set; }
        public int Stamina { get; set; }
        public int Intellect { get; set; }
        public int Spirit { get; set; }
        public int Armor { get; set; }
        #endregion
    }
    public class Resistances
    {
        #region Constructors
        public Resistances() { }
        public Resistances( int _arcane, int _fire, int _frost, int _holy, int _nature, int _shadow )
        {
            Arcane = _arcane;
            Fire = _fire;
            Frost = _frost;
            Holy = _holy;
            Nature = _nature;
            Shadow = _shadow;
        }
        #endregion
        #region Properties
        public int Arcane { get; set; }
        public int Fire { get; set; }
        public int Frost { get; set; }
        public int Holy { get; set; }
        public int Nature { get; set; }
        public int Shadow { get; set; }
        #endregion
    }
    public class CharacterBar
    {
        #region Methods
        public override string ToString()
        {
            return System.Enum.GetName( typeof( BarType ), Type );
        }
        #endregion
        #region Properties
        public int Total { get; set; }
        public BarType Type { get; set; }
        #endregion
    }
    public class Skills
    {
        #region Constructors
        public Skills() { }
        #endregion
        #region Properties
        public SkillCollection Professions { get; set; }
        public SkillCollection SecondarySkills { get; set; }
        public SkillCollection WeaponSkills { get; set; }
        public SkillCollection ClassSkills { get; set; }
        public SkillCollection ArmorProficiencies { get; set; }
        public SkillCollection Languages { get; set; }
        #endregion
    }
    public class Reputations
    {
        #region Constructors
        public Reputations()
        {
            FactionCollection = new List<GroupedReputationCollection>();
        }
        #endregion
        #region Protected Members
        protected GroupedReputationCollection _Faction;
        protected GroupedReputationCollection _BattleGrounds;
        #endregion
        #region Properties
        public List<GroupedReputationCollection> FactionCollection { get; set; }
        public GroupedReputationCollection Faction
        {
            get { return _Faction; }
            set { _Faction = value; FactionCollection.Add(_Faction); }
        }
        public GroupedReputationCollection BattleGrounds
        {
            get { return _BattleGrounds; }
            set { _BattleGrounds = value; FactionCollection.Add( _BattleGrounds ); }
        }

        #endregion
    }
}
